import { apiCheckToken } from '@/api/index.js'
import { store, mutations } from '@/uni_modules/uni-id-pages/common/store.js'

/**
 * 判断当前用户是否登录（token是否有效）
 * @param {Object} options 配置选项
 * @param {boolean} [options.checkToken=false] 是否做服务端token校验，默认为false 
 * @returns {Promise<boolean>} 返回Promise，resolve为是否登录
 */
export async function isLoggedIn(options = { checkToken: false }) {
  const { checkToken } = options
  
  // 1. 检查本地是否有存储的用户信息
  const userInfo = uni.getStorageSync('uni-id-pages-userInfo')
  if (!userInfo || Object.keys(userInfo).length === 0) {
    return false
  }
  
  // 2. 检查token过期时间
  const tokenExpired = uni.getStorageSync('uni_id_token_expired') || 0
  const currentTime = Date.now()
  if (tokenExpired < currentTime) {
    return false
  }
  
  // 3. 如果需要服务端校验
  if (checkToken) {
    try {
      const data = await apiCheckToken()
	  // console.log('userInfo-data:',data)
      return true
    } catch (error) {
      console.error('Token校验失败:', error)
      // 可以在这里添加自动登出逻辑
      // mutations.logout()
      return false
    }
  }
  
  // 4. 如果不需要服务端校验且token未过期
  return true
}